python 用list实现队列

您所在的位置:网站首页 python 队列与列表 python 用list实现队列

python 用list实现队列

2022-05-11 11:28| 来源: 网络整理| 查看: 265

#!/usr/bin/python

# -*- coding: utf-8 -*-

'''

Created on 2015-1-27

@author: beyondzhou

@name: test_listqueue.py

'''

def test_listqueue():

# import pyListQueue

from myqueue import pyListQueue

print '#Init a queue named smith using enqueue'

smith = pyListQueue()

smith.enqueue('CSCI-112')

smith.enqueue('MATH-121')

smith.enqueue('HIST-340')

smith.enqueue('ECON-101')

print '\n#output smith queue'

for element in smith:

print element

print '\n#dequeue one item'

smith.dequeue()

print '\n#output smith after dequeue'

for element in smith:

print element

print '\n#get the length of queue'

print 'the lenght of queue is ', len(smith)

print '\n#check wheter the queue is empty'

if smith.isEmpty():

print 'queue is empty!'

else:

print 'queue is not empty!'

print '\n#dequeue all items'

while not smith.isEmpty():

smith.dequeue()

print '\n#check wheter the queue is empty after dequeue all items'

if smith.isEmpty():

print 'queue is empty!'

else:

print 'queue is not empty!'

if __name__ == "__main__":

test_listqueue()

# Implementation of iter

class _pyListQueueIterator:

def __init__(self, theList):

self._setItems = theList

self._curItem = 0

def __iter__(self):

return self

def next(self):

if self._curItem < len(self._setItems):

item = self._setItems[self._curItem]

self._curItem += 1

return item

else:

raise StopIteration

# Implementation of the Queue ADT using a Python list

class pyListQueue:

# Creates an empty queue

def __init__(self):

self._qList = list()

# Returns True if the queue is empty

def isEmpty(self):

return len(self) == 0

# Returns the number of items in the queue

def __len__(self):

return len(self._qList)

# Adds the given item to the queue

def enqueue(self, item):

self._qList.append(item)

# Removes and returns the first item in the queue

def dequeue(self):

assert not self.isEmpty(), "Cannot dequeue from an empty queue."

return self._qList.pop(0)

# Returns an iterator for traversing the list of items

def __iter__(self):

return _pyListQueueIterator(self._qList)

#Init a queue named smith using enqueue

#output smith queue

CSCI-112

MATH-121

HIST-340

ECON-101

#dequeue one item

#output smith after dequeue

MATH-121

HIST-340

ECON-101

#get the length of queue

the lenght of queue is 3

#check wheter the queue is empty

queue is not empty!

#dequeue all items

#check wheter the queue is empty after dequeue all items

queue is empty!

原文地址:http://blog.csdn.net/guaguastd/article/details/43309243



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3